28.1.1.1 Understanding the problems it
addresses
Version control systems provide you with three important
capabilities:
- Reversibility: the ability to back up to a
previous state if you discover that some modification you did
was a mistake or a bad idea.
- Concurrency: the ability to have many people
modifying the same collection of files knowing that conflicting
modifications can be detected and resolved.
- History: the ability to attach historical data to
your data, such as explanatory comments about the intention
behind each change to it. Even for a programmer working solo,
change histories are an important aid to memory; for a
multi-person project, they are a vitally important form of
communication among developers.